package com.woniuxy.rabbitmqspringboot.controller;

import com.woniuxy.rabbitmqspringboot.dead.DeadProductor;
import com.woniuxy.rabbitmqspringboot.direct.DirectProductor;
import com.woniuxy.rabbitmqspringboot.fanout.FanoutProductor;
import com.woniuxy.rabbitmqspringboot.plugin.PluginProductor;
import com.woniuxy.rabbitmqspringboot.simple.Productor;
import com.woniuxy.rabbitmqspringboot.topic.TopicProductor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @Author zhangyong
 * @Date 2021/8/12 0012上午 11:44
 */
@RestController
public class RabbitmqController {
    @Resource
    private Productor productor;

    @Resource
    private FanoutProductor fanoutProductor;

    @Resource
    private DirectProductor directProductor;

    @Resource
    private TopicProductor topicProductor;

    @Resource
    private DeadProductor deadProductor;

    @Resource
    private PluginProductor pluginProductor;

    @GetMapping("/simple")
    public void simple(String data) {
        productor.send(data);
    }

    @GetMapping("/fanout")
    public void fanout() {
        fanoutProductor.send("fanout");
    }

    @GetMapping("/direct")
    public void direct() {
        directProductor.send("direct");
    }

    @GetMapping("/topic")
    public void topic() {
        topicProductor.send("chengdu.news");
    }

    @GetMapping("/dead")
    public void dead() {
        deadProductor.send("dead");
    }

    @GetMapping("/plugin")
    public void plugin(String data, int delay) {
        pluginProductor.send(data, delay);
    }
}
